package com.eshore.norm.pojo.po;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 镜像列表
 * @author HJ
 * @date 2024/1/9 9:52
 */
@NoArgsConstructor
@Data
public class NormImagePO {

    @JsonProperty("images")
    private List<ImagesDTO> images;

    @NoArgsConstructor
    @Data
    public static class ImagesDTO {
        @JsonProperty("schema")
        private String schema;
        @JsonProperty("img_signature_hash_method") // 1
        private String imgSignatureHashMethod;
        @JsonProperty("__system_encrypted")       // 1
        private String systemEncrypted;
        @JsonProperty("direct_url")
        private String directUrl;
        @JsonProperty("min_disk")
        private Integer minDisk;
        @JsonProperty("created_at")
        private String createdAt;
        @JsonProperty("os_hash_value")
        private String osHashValue;
        @JsonProperty("container_format")
        private String containerFormat;
        @JsonProperty("img_signature_key_type")
        private String imgSignatureKeyType;
        @JsonProperty("file")
        private String file;
        @JsonProperty("protected")
        private Boolean protectedX;
        @JsonProperty("updated_at")
        private String updatedAt;
        @JsonProperty("os_hidden")
        private Boolean osHidden;
        @JsonProperty("checksum")
        private String checksum;
        @JsonProperty("id")
        private String id;
        @JsonProperty("__isregistered")
        private String isregistered;
        @JsonProperty("__support_static_ip")
        private String supportStaticIp;
        @JsonProperty("file_format")
        private String fileFormat;
        @JsonProperty("min_ram")
        private Integer minRam;
        @JsonProperty("img_signature")
        private String imgSignature;
        @JsonProperty("architecture")
        private String architecture;
        @JsonProperty("__data_origin")
        private String dataOrigin;
        @JsonProperty("__virtual_size")
        private String virtualSize;
        @JsonProperty("owner")
        private String owner;
        @JsonProperty("hw_firmware_type")
        private String hwFirmwareType;
        @JsonProperty("__os_type")
        private String osType;
        @JsonProperty("__imagetype")
        private String imagetype;
        @JsonProperty("visibility")
        private String visibility;
        @JsonProperty("file_name")
        private String fileName;
        @JsonProperty("cloudinit")
        private String cloudinit;
        @JsonProperty("virtual_env_type")
        private String virtualEnvType;
        @JsonProperty("__support_kvm")
        private String supportKvm;
        @JsonProperty("hw_disk_bus")
        private String hwDiskBus;
        @JsonProperty("img_digest_value")
        private String imgDigestValue;

        @JsonProperty("tags")
        private List<String> tags;  // List<?> tags

        @JsonProperty("__platform")
        private String platform;
        @JsonProperty("size")
        private Long size;
        @JsonProperty("__os_version")
        private String osVersion;
        @JsonProperty("__os_bit")
        private String osBit;
        @JsonProperty("name")
        private String name;
        @JsonProperty("__admin_encrypted")
        private String adminEncrypted;
        @JsonProperty("disk_format")
        private String diskFormat;
        @JsonProperty("self")
        private String self;
        @JsonProperty("os_hash_algo")
        private String osHashAlgo;
        @JsonProperty("locations")
        private String locations;
        @JsonProperty("status")
        private String status;
        @JsonProperty("__support_kvm_vgpu")
        private String supportKvmVgpu;
        @JsonProperty("__support_kvm_npu")
        private String supportKvmNpu;
        @JsonProperty("__support_kvm_gpu")
        private String supportKvmGpu;
        @JsonProperty("__support_kvm_nvme_ssd")
        private String supportKvmNvmeSsd;
        @JsonProperty("__account_code")
        private String accountCode;
        @JsonProperty("__support_kvm_hana")
        private String supportKvmHana;
        @JsonProperty("describe")
        private String describe;
    }
}
